/*
'===============================================================================
'  Generated From - CSharp_EasyObject_BusinessEntity.vbgen
' 
'  ** IMPORTANT  ** 
'  How to Generate your stored procedures:
' 
'  SQL      = SQL_DAAB_StoredProcs.vbgen
'  
'  This object is 'abstract' which means you need to inherit from it to be able
'  to instantiate it.  This is very easily done. You can override properties and
'  methods in your derived class, this allows you to regenerate this class at any
'  time and not worry about overwriting custom code. 
'
'  NEVER EDIT THIS FILE.
'
'  public class YourObject :  _YourObject
'  {
'
'  }
'
'===============================================================================
*/

// Generated by MyGeneration Version # (1.3.0.3)

using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Xml;
using System.IO;

using Microsoft.Practices.EnterpriseLibrary.Data;
using NCI.EasyObjects;

namespace CMS.DAL
{

	#region Schema

	public class ProductsSchema : NCI.EasyObjects.Schema
	{
		private static ArrayList _entries;
		public static SchemaItem ProductID = new SchemaItem("ProductID", DbType.Int32, true, false, false, true, false, false);
		public static SchemaItem ProductCode = new SchemaItem("ProductCode", DbType.String, SchemaItemJustify.None, 200, true, false, false, false);
		public static SchemaItem ProductName1 = new SchemaItem("ProductName1", DbType.String, SchemaItemJustify.None, 200, true, false, false, false);
		public static SchemaItem ProductName2 = new SchemaItem("ProductName2", DbType.String, SchemaItemJustify.None, 200, true, false, false, false);
		public static SchemaItem ProductName3 = new SchemaItem("ProductName3", DbType.String, SchemaItemJustify.None, 200, true, false, false, false);
		public static SchemaItem ProductCategoryID = new SchemaItem("ProductCategoryID", DbType.Int32, false, false, false, false, false, false);
		public static SchemaItem TradeMarkID = new SchemaItem("TradeMarkID", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem MaterialID = new SchemaItem("MaterialID", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem ImageDefault = new SchemaItem("ImageDefault", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Image1 = new SchemaItem("Image1", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Image2 = new SchemaItem("Image2", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Image3 = new SchemaItem("Image3", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Image4 = new SchemaItem("Image4", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem MainContent1 = new SchemaItem("MainContent1", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem MainContent2 = new SchemaItem("MainContent2", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem MainContent3 = new SchemaItem("MainContent3", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem Price = new SchemaItem("Price", DbType.Double, false, true, false, false, false, false);
		public static SchemaItem PriceMarket = new SchemaItem("PriceMarket", DbType.Double, false, true, false, false, false, false);
		public static SchemaItem Colors = new SchemaItem("Colors", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Priority = new SchemaItem("Priority", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem Size = new SchemaItem("Size", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem CreatedDate = new SchemaItem("CreatedDate", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem IsSalesOff = new SchemaItem("isSalesOff", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem PriceSaleOff = new SchemaItem("PriceSaleOff", DbType.Double, false, true, false, false, false, false);
		public static SchemaItem PercentSaleOff = new SchemaItem("PercentSaleOff", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem SalesOffDescription = new SchemaItem("SalesOffDescription", DbType.String, SchemaItemJustify.None, 1000, true, false, false, false);
		public static SchemaItem Status = new SchemaItem("Status", DbType.Int32, false, false, false, false, false, false);
		public static SchemaItem ExpriedDateSaleOff = new SchemaItem("ExpriedDateSaleOff", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem StartedDateSaleOff = new SchemaItem("StartedDateSaleOff", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem Tag = new SchemaItem("Tag", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem Specifications1 = new SchemaItem("Specifications1", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem Specifications2 = new SchemaItem("Specifications2", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem Specifications3 = new SchemaItem("Specifications3", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem Original = new SchemaItem("Original", DbType.String, SchemaItemJustify.None, 50, true, false, false, false);
		public static SchemaItem BestSeller = new SchemaItem("BestSeller", DbType.Int32, false, true, false, false, false, false);
		public static SchemaItem UserGuide = new SchemaItem("UserGuide", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem ProductTypeID = new SchemaItem("ProductTypeID", DbType.String, SchemaItemJustify.None, 250, true, false, false, false);
		public static SchemaItem VideoLink = new SchemaItem("VideoLink", DbType.String, SchemaItemJustify.None, 1000, true, false, false, false);
		public static SchemaItem SpecificationsSub1 = new SchemaItem("SpecificationsSub1", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem SpecificationsSub2 = new SchemaItem("SpecificationsSub2", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem SpecificationsSub3 = new SchemaItem("SpecificationsSub3", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem MainContentSub1 = new SchemaItem("MainContentSub1", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem MainContentSub2 = new SchemaItem("MainContentSub2", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);
		public static SchemaItem MainContentSub3 = new SchemaItem("MainContentSub3", DbType.String, SchemaItemJustify.None, 1073741823, true, false, false, false);

		public override ArrayList SchemaEntries
		{
			get
			{
				if (_entries == null )
				{
					_entries = new ArrayList();
					_entries.Add(ProductsSchema.ProductID);
					_entries.Add(ProductsSchema.ProductCode);
					_entries.Add(ProductsSchema.ProductName1);
					_entries.Add(ProductsSchema.ProductName2);
					_entries.Add(ProductsSchema.ProductName3);
					_entries.Add(ProductsSchema.ProductCategoryID);
					_entries.Add(ProductsSchema.TradeMarkID);
					_entries.Add(ProductsSchema.MaterialID);
					_entries.Add(ProductsSchema.ImageDefault);
					_entries.Add(ProductsSchema.Image1);
					_entries.Add(ProductsSchema.Image2);
					_entries.Add(ProductsSchema.Image3);
					_entries.Add(ProductsSchema.Image4);
					_entries.Add(ProductsSchema.MainContent1);
					_entries.Add(ProductsSchema.MainContent2);
					_entries.Add(ProductsSchema.MainContent3);
					_entries.Add(ProductsSchema.Price);
					_entries.Add(ProductsSchema.PriceMarket);
					_entries.Add(ProductsSchema.Colors);
					_entries.Add(ProductsSchema.Priority);
					_entries.Add(ProductsSchema.Size);
					_entries.Add(ProductsSchema.CreatedDate);
					_entries.Add(ProductsSchema.IsSalesOff);
					_entries.Add(ProductsSchema.PriceSaleOff);
					_entries.Add(ProductsSchema.PercentSaleOff);
					_entries.Add(ProductsSchema.SalesOffDescription);
					_entries.Add(ProductsSchema.Status);
					_entries.Add(ProductsSchema.ExpriedDateSaleOff);
					_entries.Add(ProductsSchema.StartedDateSaleOff);
					_entries.Add(ProductsSchema.Tag);
					_entries.Add(ProductsSchema.Specifications1);
					_entries.Add(ProductsSchema.Specifications2);
					_entries.Add(ProductsSchema.Specifications3);
					_entries.Add(ProductsSchema.Original);
					_entries.Add(ProductsSchema.BestSeller);
					_entries.Add(ProductsSchema.UserGuide);
					_entries.Add(ProductsSchema.ProductTypeID);
					_entries.Add(ProductsSchema.VideoLink);
					_entries.Add(ProductsSchema.SpecificationsSub1);
					_entries.Add(ProductsSchema.SpecificationsSub2);
					_entries.Add(ProductsSchema.SpecificationsSub3);
					_entries.Add(ProductsSchema.MainContentSub1);
					_entries.Add(ProductsSchema.MainContentSub2);
					_entries.Add(ProductsSchema.MainContentSub3);
				}
				return _entries;
			}
		}
		
		public static bool HasAutoKey 
		{
			get { return true;	}
		}

		public static bool HasRowID 
		{
			get { return false;	}
		}
	}
	#endregion

	public abstract class _Products : EasyObject
	{

		public _Products()
		{
			ProductsSchema _schema = new ProductsSchema();
			this.SchemaEntries = _schema.SchemaEntries;
			this.SchemaGlobal = "dbo";
		}
		
		public override void FlushData() 	 
		{ 	 
			this._whereClause = null; 	 
			this._aggregateClause = null; 	 
			base.FlushData(); 	 
		}
			   
		/// <summary>
		/// Loads the business object with info from the database, based on the requested primary key.
		/// </summary>
		/// <param name="ProductID"></param>
		/// <returns>A Boolean indicating success or failure of the query</returns>
		public bool LoadByPrimaryKey(int ProductID)
		{
			switch(this.DefaultCommandType)
			{
				case CommandType.StoredProcedure:
					ListDictionary parameters = new ListDictionary();

					// Add in parameters
					parameters.Add(ProductsSchema.ProductID.FieldName, ProductID);

					return base.LoadFromSql(this.SchemaStoredProcedureWithSeparator + "sp_GetProducts", parameters, CommandType.StoredProcedure);

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					this.Where.ProductID.Value = ProductID;
					return this.Query.Load();

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}
	
		/// <summary>
		/// Loads all records from the table.
		/// </summary>
		/// <returns>A Boolean indicating success or failure of the query</returns>
		public bool LoadAll()
		{
			switch(this.DefaultCommandType)
			{
				case CommandType.StoredProcedure:
					return base.LoadFromSql(this.SchemaStoredProcedureWithSeparator + "sp_GetAllProducts", null, CommandType.StoredProcedure);

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					return this.Query.Load();

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		/// <summary>
		/// Adds a new record to the internal table.
		/// </summary>
		public override void AddNew()
		{
			base.AddNew();
			this.ApplyDefaults();
		}

		/// <summary>
		/// Apply any default values to columns
		/// </summary>
		protected override void ApplyDefaults()
		{
		}

		protected override DbCommand GetInsertCommand(CommandType commandType)
		{	
			DbCommand dbCommand;

			// Create the Database object, using the default database service. The
			// default database service is determined through configuration.
			Database db = GetDatabase();

			switch(commandType)
			{
				case CommandType.StoredProcedure:
					string sqlCommand = this.SchemaStoredProcedureWithSeparator + "sp_AddProducts";
					dbCommand = db.GetStoredProcCommand(sqlCommand);

					db.AddParameter(dbCommand, "ProductID", DbType.Int32, 0, ParameterDirection.Output, true, 0, 0, "ProductID", DataRowVersion.Default, Convert.DBNull);
					CreateParameters(db, dbCommand);
					
					return dbCommand;

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					foreach(SchemaItem item in this.SchemaEntries)
					{
						if (!item.IsComputed)
						{
							if ((item.IsAutoKey && this.IdentityInsert) || !item.IsAutoKey)
							{
								this.Query.AddInsertColumn(item);
							}
						}
					}
					dbCommand = this.Query.GetInsertCommandWrapper();

					dbCommand.Parameters.Clear();
					if (this.IdentityInsert)
					{
						db.AddInParameter(dbCommand, "ProductID", DbType.Int32, "ProductID", DataRowVersion.Default);
					}
					else
					{
						db.AddParameter(dbCommand, "ProductID", DbType.Int32, 0, ParameterDirection.Output, true, 0, 0, "ProductID", DataRowVersion.Default, Convert.DBNull);
					}
					CreateParameters(db, dbCommand);

					return dbCommand;

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		protected override DbCommand GetUpdateCommand(CommandType commandType)
		{
            DbCommand dbCommand;

			// Create the Database object, using the default database service. The
			// default database service is determined through configuration.
			Database db = GetDatabase();

			switch(commandType)
			{
				case CommandType.StoredProcedure:
					string sqlCommand = this.SchemaStoredProcedureWithSeparator + "sp_UpdateProducts";
					dbCommand = db.GetStoredProcCommand(sqlCommand);

					db.AddInParameter(dbCommand, "ProductID", DbType.Int32, "ProductID", DataRowVersion.Current);
					CreateParameters(db, dbCommand);
					
					return dbCommand;

				case CommandType.Text:
					this.Query.ClearAll();
					foreach(SchemaItem item in this.SchemaEntries)
					{
						if (!(item.IsAutoKey || item.IsComputed))
						{
							this.Query.AddUpdateColumn(item);
						}
					}

					this.Where.WhereClauseReset();
					this.Where.ProductID.Operator = WhereParameter.Operand.Equal;
					dbCommand = this.Query.GetUpdateCommandWrapper();

					dbCommand.Parameters.Clear();
					CreateParameters(db, dbCommand);
					db.AddInParameter(dbCommand, "ProductID", DbType.Int32, "ProductID", DataRowVersion.Current);
					
					return dbCommand;

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		protected override DbCommand GetDeleteCommand(CommandType commandType)
		{
            DbCommand dbCommand;

			// Create the Database object, using the default database service. The
			// default database service is determined through configuration.
			Database db = GetDatabase();

			switch(commandType)
			{
				case CommandType.StoredProcedure:
					string sqlCommand = this.SchemaStoredProcedureWithSeparator + "sp_DeleteProducts";
					dbCommand = db.GetStoredProcCommand(sqlCommand);
					db.AddInParameter(dbCommand, "ProductID", DbType.Int32, "ProductID", DataRowVersion.Current);
					
					return dbCommand;

				case CommandType.Text:
					this.Query.ClearAll();
					this.Where.WhereClauseReset();
					this.Where.ProductID.Operator = WhereParameter.Operand.Equal;
					dbCommand = this.Query.GetDeleteCommandWrapper();

					dbCommand.Parameters.Clear();
					db.AddInParameter(dbCommand, "ProductID", DbType.Int32, "ProductID", DataRowVersion.Current);
					
					return dbCommand;

				default:
					throw new ArgumentException("Invalid CommandType", "commandType");
			}
		}

		private void CreateParameters(Database db, DbCommand dbCommand)
		{
			db.AddInParameter(dbCommand, "ProductCode", DbType.String, "ProductCode", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ProductName1", DbType.String, "ProductName1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ProductName2", DbType.String, "ProductName2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ProductName3", DbType.String, "ProductName3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ProductCategoryID", DbType.Int32, "ProductCategoryID", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "TradeMarkID", DbType.Int32, "TradeMarkID", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MaterialID", DbType.Int32, "MaterialID", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ImageDefault", DbType.String, "ImageDefault", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Image1", DbType.String, "Image1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Image2", DbType.String, "Image2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Image3", DbType.String, "Image3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Image4", DbType.String, "Image4", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MainContent1", DbType.String, "MainContent1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MainContent2", DbType.String, "MainContent2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MainContent3", DbType.String, "MainContent3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Price", DbType.Double, "Price", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "PriceMarket", DbType.Double, "PriceMarket", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Colors", DbType.String, "Colors", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Priority", DbType.Int32, "Priority", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Size", DbType.String, "Size", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "CreatedDate", DbType.Int32, "CreatedDate", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "isSalesOff", DbType.Int32, "isSalesOff", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "PriceSaleOff", DbType.Double, "PriceSaleOff", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "PercentSaleOff", DbType.Int32, "PercentSaleOff", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SalesOffDescription", DbType.String, "SalesOffDescription", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Status", DbType.Int32, "Status", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ExpriedDateSaleOff", DbType.Int32, "ExpriedDateSaleOff", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "StartedDateSaleOff", DbType.Int32, "StartedDateSaleOff", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Tag", DbType.String, "Tag", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Specifications1", DbType.String, "Specifications1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Specifications2", DbType.String, "Specifications2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Specifications3", DbType.String, "Specifications3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "Original", DbType.String, "Original", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "BestSeller", DbType.Int32, "BestSeller", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "UserGuide", DbType.String, "UserGuide", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "ProductTypeID", DbType.String, "ProductTypeID", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "VideoLink", DbType.String, "VideoLink", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SpecificationsSub1", DbType.String, "SpecificationsSub1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SpecificationsSub2", DbType.String, "SpecificationsSub2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "SpecificationsSub3", DbType.String, "SpecificationsSub3", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MainContentSub1", DbType.String, "MainContentSub1", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MainContentSub2", DbType.String, "MainContentSub2", DataRowVersion.Current);
			db.AddInParameter(dbCommand, "MainContentSub3", DbType.String, "MainContentSub3", DataRowVersion.Current);
		}
		
		#region Properties
		public virtual int ProductID
		{
			get
			{
				return this.GetInteger(ProductsSchema.ProductID.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.ProductID.FieldName, value);
			}
		}
		public virtual string ProductCode
		{
			get
			{
				return this.GetString(ProductsSchema.ProductCode.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.ProductCode.FieldName, value);
			}
		}
		public virtual string ProductName1
		{
			get
			{
				return this.GetString(ProductsSchema.ProductName1.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.ProductName1.FieldName, value);
			}
		}
		public virtual string ProductName2
		{
			get
			{
				return this.GetString(ProductsSchema.ProductName2.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.ProductName2.FieldName, value);
			}
		}
		public virtual string ProductName3
		{
			get
			{
				return this.GetString(ProductsSchema.ProductName3.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.ProductName3.FieldName, value);
			}
		}
		public virtual int ProductCategoryID
		{
			get
			{
				return this.GetInteger(ProductsSchema.ProductCategoryID.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.ProductCategoryID.FieldName, value);
			}
		}
		public virtual int TradeMarkID
		{
			get
			{
				return this.GetInteger(ProductsSchema.TradeMarkID.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.TradeMarkID.FieldName, value);
			}
		}
		public virtual int MaterialID
		{
			get
			{
				return this.GetInteger(ProductsSchema.MaterialID.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.MaterialID.FieldName, value);
			}
		}
		public virtual string ImageDefault
		{
			get
			{
				return this.GetString(ProductsSchema.ImageDefault.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.ImageDefault.FieldName, value);
			}
		}
		public virtual string Image1
		{
			get
			{
				return this.GetString(ProductsSchema.Image1.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Image1.FieldName, value);
			}
		}
		public virtual string Image2
		{
			get
			{
				return this.GetString(ProductsSchema.Image2.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Image2.FieldName, value);
			}
		}
		public virtual string Image3
		{
			get
			{
				return this.GetString(ProductsSchema.Image3.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Image3.FieldName, value);
			}
		}
		public virtual string Image4
		{
			get
			{
				return this.GetString(ProductsSchema.Image4.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Image4.FieldName, value);
			}
		}
		public virtual string MainContent1
		{
			get
			{
				return this.GetString(ProductsSchema.MainContent1.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.MainContent1.FieldName, value);
			}
		}
		public virtual string MainContent2
		{
			get
			{
				return this.GetString(ProductsSchema.MainContent2.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.MainContent2.FieldName, value);
			}
		}
		public virtual string MainContent3
		{
			get
			{
				return this.GetString(ProductsSchema.MainContent3.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.MainContent3.FieldName, value);
			}
		}
		public virtual double Price
		{
			get
			{
				return this.GetDouble(ProductsSchema.Price.FieldName);
	    	}
			set
			{
				this.SetDouble(ProductsSchema.Price.FieldName, value);
			}
		}
		public virtual double PriceMarket
		{
			get
			{
				return this.GetDouble(ProductsSchema.PriceMarket.FieldName);
	    	}
			set
			{
				this.SetDouble(ProductsSchema.PriceMarket.FieldName, value);
			}
		}
		public virtual string Colors
		{
			get
			{
				return this.GetString(ProductsSchema.Colors.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Colors.FieldName, value);
			}
		}
		public virtual int Priority
		{
			get
			{
				return this.GetInteger(ProductsSchema.Priority.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.Priority.FieldName, value);
			}
		}
		public virtual string Size
		{
			get
			{
				return this.GetString(ProductsSchema.Size.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Size.FieldName, value);
			}
		}
		public virtual int CreatedDate
		{
			get
			{
				return this.GetInteger(ProductsSchema.CreatedDate.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.CreatedDate.FieldName, value);
			}
		}
		public virtual int IsSalesOff
		{
			get
			{
				return this.GetInteger(ProductsSchema.IsSalesOff.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.IsSalesOff.FieldName, value);
			}
		}
		public virtual double PriceSaleOff
		{
			get
			{
				return this.GetDouble(ProductsSchema.PriceSaleOff.FieldName);
	    	}
			set
			{
				this.SetDouble(ProductsSchema.PriceSaleOff.FieldName, value);
			}
		}
		public virtual int PercentSaleOff
		{
			get
			{
				return this.GetInteger(ProductsSchema.PercentSaleOff.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.PercentSaleOff.FieldName, value);
			}
		}
		public virtual string SalesOffDescription
		{
			get
			{
				return this.GetString(ProductsSchema.SalesOffDescription.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.SalesOffDescription.FieldName, value);
			}
		}
		public virtual int Status
		{
			get
			{
				return this.GetInteger(ProductsSchema.Status.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.Status.FieldName, value);
			}
		}
		public virtual int ExpriedDateSaleOff
		{
			get
			{
				return this.GetInteger(ProductsSchema.ExpriedDateSaleOff.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.ExpriedDateSaleOff.FieldName, value);
			}
		}
		public virtual int StartedDateSaleOff
		{
			get
			{
				return this.GetInteger(ProductsSchema.StartedDateSaleOff.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.StartedDateSaleOff.FieldName, value);
			}
		}
		public virtual string Tag
		{
			get
			{
				return this.GetString(ProductsSchema.Tag.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Tag.FieldName, value);
			}
		}
		public virtual string Specifications1
		{
			get
			{
				return this.GetString(ProductsSchema.Specifications1.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Specifications1.FieldName, value);
			}
		}
		public virtual string Specifications2
		{
			get
			{
				return this.GetString(ProductsSchema.Specifications2.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Specifications2.FieldName, value);
			}
		}
		public virtual string Specifications3
		{
			get
			{
				return this.GetString(ProductsSchema.Specifications3.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Specifications3.FieldName, value);
			}
		}
		public virtual string Original
		{
			get
			{
				return this.GetString(ProductsSchema.Original.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.Original.FieldName, value);
			}
		}
		public virtual int BestSeller
		{
			get
			{
				return this.GetInteger(ProductsSchema.BestSeller.FieldName);
	    	}
			set
			{
				this.SetInteger(ProductsSchema.BestSeller.FieldName, value);
			}
		}
		public virtual string UserGuide
		{
			get
			{
				return this.GetString(ProductsSchema.UserGuide.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.UserGuide.FieldName, value);
			}
		}
		public virtual string ProductTypeID
		{
			get
			{
				return this.GetString(ProductsSchema.ProductTypeID.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.ProductTypeID.FieldName, value);
			}
		}
		public virtual string VideoLink
		{
			get
			{
				return this.GetString(ProductsSchema.VideoLink.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.VideoLink.FieldName, value);
			}
		}
		public virtual string SpecificationsSub1
		{
			get
			{
				return this.GetString(ProductsSchema.SpecificationsSub1.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.SpecificationsSub1.FieldName, value);
			}
		}
		public virtual string SpecificationsSub2
		{
			get
			{
				return this.GetString(ProductsSchema.SpecificationsSub2.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.SpecificationsSub2.FieldName, value);
			}
		}
		public virtual string SpecificationsSub3
		{
			get
			{
				return this.GetString(ProductsSchema.SpecificationsSub3.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.SpecificationsSub3.FieldName, value);
			}
		}
		public virtual string MainContentSub1
		{
			get
			{
				return this.GetString(ProductsSchema.MainContentSub1.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.MainContentSub1.FieldName, value);
			}
		}
		public virtual string MainContentSub2
		{
			get
			{
				return this.GetString(ProductsSchema.MainContentSub2.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.MainContentSub2.FieldName, value);
			}
		}
		public virtual string MainContentSub3
		{
			get
			{
				return this.GetString(ProductsSchema.MainContentSub3.FieldName);
	    	}
			set
			{
				this.SetString(ProductsSchema.MainContentSub3.FieldName, value);
			}
		}

		public override string TableName
		{
			get { return "Products"; }
		}
		
		#endregion		
		
		#region String Properties
		public virtual string s_ProductID
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductID.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.ProductID.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductID.FieldName);
			    else
			        this.ProductID = base.SetIntegerAsString(ProductsSchema.ProductID.FieldName, value);
			}
		}
		public virtual string s_ProductCode
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductCode.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.ProductCode.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductCode.FieldName);
			    else
			        this.ProductCode = base.SetStringAsString(ProductsSchema.ProductCode.FieldName, value);
			}
		}
		public virtual string s_ProductName1
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductName1.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.ProductName1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductName1.FieldName);
			    else
			        this.ProductName1 = base.SetStringAsString(ProductsSchema.ProductName1.FieldName, value);
			}
		}
		public virtual string s_ProductName2
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductName2.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.ProductName2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductName2.FieldName);
			    else
			        this.ProductName2 = base.SetStringAsString(ProductsSchema.ProductName2.FieldName, value);
			}
		}
		public virtual string s_ProductName3
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductName3.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.ProductName3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductName3.FieldName);
			    else
			        this.ProductName3 = base.SetStringAsString(ProductsSchema.ProductName3.FieldName, value);
			}
		}
		public virtual string s_ProductCategoryID
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductCategoryID.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.ProductCategoryID.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductCategoryID.FieldName);
			    else
			        this.ProductCategoryID = base.SetIntegerAsString(ProductsSchema.ProductCategoryID.FieldName, value);
			}
		}
		public virtual string s_TradeMarkID
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.TradeMarkID.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.TradeMarkID.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.TradeMarkID.FieldName);
			    else
			        this.TradeMarkID = base.SetIntegerAsString(ProductsSchema.TradeMarkID.FieldName, value);
			}
		}
		public virtual string s_MaterialID
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MaterialID.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.MaterialID.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MaterialID.FieldName);
			    else
			        this.MaterialID = base.SetIntegerAsString(ProductsSchema.MaterialID.FieldName, value);
			}
		}
		public virtual string s_ImageDefault
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ImageDefault.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.ImageDefault.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ImageDefault.FieldName);
			    else
			        this.ImageDefault = base.SetStringAsString(ProductsSchema.ImageDefault.FieldName, value);
			}
		}
		public virtual string s_Image1
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Image1.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Image1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Image1.FieldName);
			    else
			        this.Image1 = base.SetStringAsString(ProductsSchema.Image1.FieldName, value);
			}
		}
		public virtual string s_Image2
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Image2.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Image2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Image2.FieldName);
			    else
			        this.Image2 = base.SetStringAsString(ProductsSchema.Image2.FieldName, value);
			}
		}
		public virtual string s_Image3
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Image3.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Image3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Image3.FieldName);
			    else
			        this.Image3 = base.SetStringAsString(ProductsSchema.Image3.FieldName, value);
			}
		}
		public virtual string s_Image4
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Image4.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Image4.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Image4.FieldName);
			    else
			        this.Image4 = base.SetStringAsString(ProductsSchema.Image4.FieldName, value);
			}
		}
		public virtual string s_MainContent1
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MainContent1.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.MainContent1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MainContent1.FieldName);
			    else
			        this.MainContent1 = base.SetStringAsString(ProductsSchema.MainContent1.FieldName, value);
			}
		}
		public virtual string s_MainContent2
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MainContent2.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.MainContent2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MainContent2.FieldName);
			    else
			        this.MainContent2 = base.SetStringAsString(ProductsSchema.MainContent2.FieldName, value);
			}
		}
		public virtual string s_MainContent3
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MainContent3.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.MainContent3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MainContent3.FieldName);
			    else
			        this.MainContent3 = base.SetStringAsString(ProductsSchema.MainContent3.FieldName, value);
			}
		}
		public virtual string s_Price
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Price.FieldName) ? string.Empty : base.GetDoubleAsString(ProductsSchema.Price.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Price.FieldName);
			    else
			        this.Price = base.SetDoubleAsString(ProductsSchema.Price.FieldName, value);
			}
		}
		public virtual string s_PriceMarket
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.PriceMarket.FieldName) ? string.Empty : base.GetDoubleAsString(ProductsSchema.PriceMarket.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.PriceMarket.FieldName);
			    else
			        this.PriceMarket = base.SetDoubleAsString(ProductsSchema.PriceMarket.FieldName, value);
			}
		}
		public virtual string s_Colors
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Colors.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Colors.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Colors.FieldName);
			    else
			        this.Colors = base.SetStringAsString(ProductsSchema.Colors.FieldName, value);
			}
		}
		public virtual string s_Priority
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Priority.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.Priority.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Priority.FieldName);
			    else
			        this.Priority = base.SetIntegerAsString(ProductsSchema.Priority.FieldName, value);
			}
		}
		public virtual string s_Size
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Size.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Size.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Size.FieldName);
			    else
			        this.Size = base.SetStringAsString(ProductsSchema.Size.FieldName, value);
			}
		}
		public virtual string s_CreatedDate
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.CreatedDate.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.CreatedDate.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.CreatedDate.FieldName);
			    else
			        this.CreatedDate = base.SetIntegerAsString(ProductsSchema.CreatedDate.FieldName, value);
			}
		}
		public virtual string s_IsSalesOff
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.IsSalesOff.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.IsSalesOff.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.IsSalesOff.FieldName);
			    else
			        this.IsSalesOff = base.SetIntegerAsString(ProductsSchema.IsSalesOff.FieldName, value);
			}
		}
		public virtual string s_PriceSaleOff
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.PriceSaleOff.FieldName) ? string.Empty : base.GetDoubleAsString(ProductsSchema.PriceSaleOff.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.PriceSaleOff.FieldName);
			    else
			        this.PriceSaleOff = base.SetDoubleAsString(ProductsSchema.PriceSaleOff.FieldName, value);
			}
		}
		public virtual string s_PercentSaleOff
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.PercentSaleOff.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.PercentSaleOff.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.PercentSaleOff.FieldName);
			    else
			        this.PercentSaleOff = base.SetIntegerAsString(ProductsSchema.PercentSaleOff.FieldName, value);
			}
		}
		public virtual string s_SalesOffDescription
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.SalesOffDescription.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.SalesOffDescription.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.SalesOffDescription.FieldName);
			    else
			        this.SalesOffDescription = base.SetStringAsString(ProductsSchema.SalesOffDescription.FieldName, value);
			}
		}
		public virtual string s_Status
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Status.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.Status.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Status.FieldName);
			    else
			        this.Status = base.SetIntegerAsString(ProductsSchema.Status.FieldName, value);
			}
		}
		public virtual string s_ExpriedDateSaleOff
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ExpriedDateSaleOff.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.ExpriedDateSaleOff.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ExpriedDateSaleOff.FieldName);
			    else
			        this.ExpriedDateSaleOff = base.SetIntegerAsString(ProductsSchema.ExpriedDateSaleOff.FieldName, value);
			}
		}
		public virtual string s_StartedDateSaleOff
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.StartedDateSaleOff.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.StartedDateSaleOff.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.StartedDateSaleOff.FieldName);
			    else
			        this.StartedDateSaleOff = base.SetIntegerAsString(ProductsSchema.StartedDateSaleOff.FieldName, value);
			}
		}
		public virtual string s_Tag
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Tag.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Tag.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Tag.FieldName);
			    else
			        this.Tag = base.SetStringAsString(ProductsSchema.Tag.FieldName, value);
			}
		}
		public virtual string s_Specifications1
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Specifications1.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Specifications1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Specifications1.FieldName);
			    else
			        this.Specifications1 = base.SetStringAsString(ProductsSchema.Specifications1.FieldName, value);
			}
		}
		public virtual string s_Specifications2
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Specifications2.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Specifications2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Specifications2.FieldName);
			    else
			        this.Specifications2 = base.SetStringAsString(ProductsSchema.Specifications2.FieldName, value);
			}
		}
		public virtual string s_Specifications3
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Specifications3.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Specifications3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Specifications3.FieldName);
			    else
			        this.Specifications3 = base.SetStringAsString(ProductsSchema.Specifications3.FieldName, value);
			}
		}
		public virtual string s_Original
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.Original.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.Original.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.Original.FieldName);
			    else
			        this.Original = base.SetStringAsString(ProductsSchema.Original.FieldName, value);
			}
		}
		public virtual string s_BestSeller
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.BestSeller.FieldName) ? string.Empty : base.GetIntegerAsString(ProductsSchema.BestSeller.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.BestSeller.FieldName);
			    else
			        this.BestSeller = base.SetIntegerAsString(ProductsSchema.BestSeller.FieldName, value);
			}
		}
		public virtual string s_UserGuide
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.UserGuide.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.UserGuide.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.UserGuide.FieldName);
			    else
			        this.UserGuide = base.SetStringAsString(ProductsSchema.UserGuide.FieldName, value);
			}
		}
		public virtual string s_ProductTypeID
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.ProductTypeID.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.ProductTypeID.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.ProductTypeID.FieldName);
			    else
			        this.ProductTypeID = base.SetStringAsString(ProductsSchema.ProductTypeID.FieldName, value);
			}
		}
		public virtual string s_VideoLink
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.VideoLink.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.VideoLink.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.VideoLink.FieldName);
			    else
			        this.VideoLink = base.SetStringAsString(ProductsSchema.VideoLink.FieldName, value);
			}
		}
		public virtual string s_SpecificationsSub1
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.SpecificationsSub1.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.SpecificationsSub1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.SpecificationsSub1.FieldName);
			    else
			        this.SpecificationsSub1 = base.SetStringAsString(ProductsSchema.SpecificationsSub1.FieldName, value);
			}
		}
		public virtual string s_SpecificationsSub2
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.SpecificationsSub2.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.SpecificationsSub2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.SpecificationsSub2.FieldName);
			    else
			        this.SpecificationsSub2 = base.SetStringAsString(ProductsSchema.SpecificationsSub2.FieldName, value);
			}
		}
		public virtual string s_SpecificationsSub3
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.SpecificationsSub3.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.SpecificationsSub3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.SpecificationsSub3.FieldName);
			    else
			        this.SpecificationsSub3 = base.SetStringAsString(ProductsSchema.SpecificationsSub3.FieldName, value);
			}
		}
		public virtual string s_MainContentSub1
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MainContentSub1.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.MainContentSub1.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MainContentSub1.FieldName);
			    else
			        this.MainContentSub1 = base.SetStringAsString(ProductsSchema.MainContentSub1.FieldName, value);
			}
		}
		public virtual string s_MainContentSub2
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MainContentSub2.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.MainContentSub2.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MainContentSub2.FieldName);
			    else
			        this.MainContentSub2 = base.SetStringAsString(ProductsSchema.MainContentSub2.FieldName, value);
			}
		}
		public virtual string s_MainContentSub3
		{
			get
			{
			    return this.IsColumnNull(ProductsSchema.MainContentSub3.FieldName) ? string.Empty : base.GetStringAsString(ProductsSchema.MainContentSub3.FieldName);
			}
			set
			{
			    if(string.Empty == value)
			        this.SetColumnNull(ProductsSchema.MainContentSub3.FieldName);
			    else
			        this.MainContentSub3 = base.SetStringAsString(ProductsSchema.MainContentSub3.FieldName, value);
			}
		}
		#endregion		
	
		#region Where Clause
		public class WhereClause
		{
			public WhereClause(EasyObject entity)
			{
				this._entity = entity;
			}
			
			public TearOffWhereParameter TearOff
			{
				get
				{
					if(_tearOff == null)
					{
						_tearOff = new TearOffWhereParameter(this);
					}

					return _tearOff;
				}
			}

			#region TearOff's
			public class TearOffWhereParameter
			{
				public TearOffWhereParameter(WhereClause clause)
				{
					this._clause = clause;
				}
				
				
				public WhereParameter ProductID
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductID);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ProductCode
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductCode);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ProductName1
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductName1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ProductName2
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductName2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ProductName3
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductName3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ProductCategoryID
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductCategoryID);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter TradeMarkID
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.TradeMarkID);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MaterialID
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MaterialID);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ImageDefault
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ImageDefault);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Image1
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Image1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Image2
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Image2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Image3
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Image3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Image4
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Image4);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MainContent1
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MainContent1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MainContent2
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MainContent2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MainContent3
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MainContent3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Price
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Price);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter PriceMarket
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.PriceMarket);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Colors
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Colors);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Priority
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Priority);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Size
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Size);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter CreatedDate
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.CreatedDate);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter IsSalesOff
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.IsSalesOff);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter PriceSaleOff
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.PriceSaleOff);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter PercentSaleOff
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.PercentSaleOff);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SalesOffDescription
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.SalesOffDescription);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Status
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Status);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ExpriedDateSaleOff
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ExpriedDateSaleOff);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter StartedDateSaleOff
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.StartedDateSaleOff);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Tag
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Tag);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Specifications1
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Specifications1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Specifications2
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Specifications2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Specifications3
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Specifications3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter Original
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.Original);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter BestSeller
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.BestSeller);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter UserGuide
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.UserGuide);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter ProductTypeID
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.ProductTypeID);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter VideoLink
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.VideoLink);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SpecificationsSub1
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.SpecificationsSub1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SpecificationsSub2
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.SpecificationsSub2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter SpecificationsSub3
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.SpecificationsSub3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MainContentSub1
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MainContentSub1);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MainContentSub2
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MainContentSub2);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}

				public WhereParameter MainContentSub3
				{
					get
					{
							WhereParameter wp = new WhereParameter(ProductsSchema.MainContentSub3);
							this._clause._entity.Query.AddWhereParameter(wp);
							return wp;
					}
				}


				private WhereClause _clause;
			}
			#endregion
		
			public WhereParameter ProductID
		    {
				get
		        {
					if(_ProductID_W == null)
	        	    {
						_ProductID_W = TearOff.ProductID;
					}
					return _ProductID_W;
				}
			}

			public WhereParameter ProductCode
		    {
				get
		        {
					if(_ProductCode_W == null)
	        	    {
						_ProductCode_W = TearOff.ProductCode;
					}
					return _ProductCode_W;
				}
			}

			public WhereParameter ProductName1
		    {
				get
		        {
					if(_ProductName1_W == null)
	        	    {
						_ProductName1_W = TearOff.ProductName1;
					}
					return _ProductName1_W;
				}
			}

			public WhereParameter ProductName2
		    {
				get
		        {
					if(_ProductName2_W == null)
	        	    {
						_ProductName2_W = TearOff.ProductName2;
					}
					return _ProductName2_W;
				}
			}

			public WhereParameter ProductName3
		    {
				get
		        {
					if(_ProductName3_W == null)
	        	    {
						_ProductName3_W = TearOff.ProductName3;
					}
					return _ProductName3_W;
				}
			}

			public WhereParameter ProductCategoryID
		    {
				get
		        {
					if(_ProductCategoryID_W == null)
	        	    {
						_ProductCategoryID_W = TearOff.ProductCategoryID;
					}
					return _ProductCategoryID_W;
				}
			}

			public WhereParameter TradeMarkID
		    {
				get
		        {
					if(_TradeMarkID_W == null)
	        	    {
						_TradeMarkID_W = TearOff.TradeMarkID;
					}
					return _TradeMarkID_W;
				}
			}

			public WhereParameter MaterialID
		    {
				get
		        {
					if(_MaterialID_W == null)
	        	    {
						_MaterialID_W = TearOff.MaterialID;
					}
					return _MaterialID_W;
				}
			}

			public WhereParameter ImageDefault
		    {
				get
		        {
					if(_ImageDefault_W == null)
	        	    {
						_ImageDefault_W = TearOff.ImageDefault;
					}
					return _ImageDefault_W;
				}
			}

			public WhereParameter Image1
		    {
				get
		        {
					if(_Image1_W == null)
	        	    {
						_Image1_W = TearOff.Image1;
					}
					return _Image1_W;
				}
			}

			public WhereParameter Image2
		    {
				get
		        {
					if(_Image2_W == null)
	        	    {
						_Image2_W = TearOff.Image2;
					}
					return _Image2_W;
				}
			}

			public WhereParameter Image3
		    {
				get
		        {
					if(_Image3_W == null)
	        	    {
						_Image3_W = TearOff.Image3;
					}
					return _Image3_W;
				}
			}

			public WhereParameter Image4
		    {
				get
		        {
					if(_Image4_W == null)
	        	    {
						_Image4_W = TearOff.Image4;
					}
					return _Image4_W;
				}
			}

			public WhereParameter MainContent1
		    {
				get
		        {
					if(_MainContent1_W == null)
	        	    {
						_MainContent1_W = TearOff.MainContent1;
					}
					return _MainContent1_W;
				}
			}

			public WhereParameter MainContent2
		    {
				get
		        {
					if(_MainContent2_W == null)
	        	    {
						_MainContent2_W = TearOff.MainContent2;
					}
					return _MainContent2_W;
				}
			}

			public WhereParameter MainContent3
		    {
				get
		        {
					if(_MainContent3_W == null)
	        	    {
						_MainContent3_W = TearOff.MainContent3;
					}
					return _MainContent3_W;
				}
			}

			public WhereParameter Price
		    {
				get
		        {
					if(_Price_W == null)
	        	    {
						_Price_W = TearOff.Price;
					}
					return _Price_W;
				}
			}

			public WhereParameter PriceMarket
		    {
				get
		        {
					if(_PriceMarket_W == null)
	        	    {
						_PriceMarket_W = TearOff.PriceMarket;
					}
					return _PriceMarket_W;
				}
			}

			public WhereParameter Colors
		    {
				get
		        {
					if(_Colors_W == null)
	        	    {
						_Colors_W = TearOff.Colors;
					}
					return _Colors_W;
				}
			}

			public WhereParameter Priority
		    {
				get
		        {
					if(_Priority_W == null)
	        	    {
						_Priority_W = TearOff.Priority;
					}
					return _Priority_W;
				}
			}

			public WhereParameter Size
		    {
				get
		        {
					if(_Size_W == null)
	        	    {
						_Size_W = TearOff.Size;
					}
					return _Size_W;
				}
			}

			public WhereParameter CreatedDate
		    {
				get
		        {
					if(_CreatedDate_W == null)
	        	    {
						_CreatedDate_W = TearOff.CreatedDate;
					}
					return _CreatedDate_W;
				}
			}

			public WhereParameter IsSalesOff
		    {
				get
		        {
					if(_IsSalesOff_W == null)
	        	    {
						_IsSalesOff_W = TearOff.IsSalesOff;
					}
					return _IsSalesOff_W;
				}
			}

			public WhereParameter PriceSaleOff
		    {
				get
		        {
					if(_PriceSaleOff_W == null)
	        	    {
						_PriceSaleOff_W = TearOff.PriceSaleOff;
					}
					return _PriceSaleOff_W;
				}
			}

			public WhereParameter PercentSaleOff
		    {
				get
		        {
					if(_PercentSaleOff_W == null)
	        	    {
						_PercentSaleOff_W = TearOff.PercentSaleOff;
					}
					return _PercentSaleOff_W;
				}
			}

			public WhereParameter SalesOffDescription
		    {
				get
		        {
					if(_SalesOffDescription_W == null)
	        	    {
						_SalesOffDescription_W = TearOff.SalesOffDescription;
					}
					return _SalesOffDescription_W;
				}
			}

			public WhereParameter Status
		    {
				get
		        {
					if(_Status_W == null)
	        	    {
						_Status_W = TearOff.Status;
					}
					return _Status_W;
				}
			}

			public WhereParameter ExpriedDateSaleOff
		    {
				get
		        {
					if(_ExpriedDateSaleOff_W == null)
	        	    {
						_ExpriedDateSaleOff_W = TearOff.ExpriedDateSaleOff;
					}
					return _ExpriedDateSaleOff_W;
				}
			}

			public WhereParameter StartedDateSaleOff
		    {
				get
		        {
					if(_StartedDateSaleOff_W == null)
	        	    {
						_StartedDateSaleOff_W = TearOff.StartedDateSaleOff;
					}
					return _StartedDateSaleOff_W;
				}
			}

			public WhereParameter Tag
		    {
				get
		        {
					if(_Tag_W == null)
	        	    {
						_Tag_W = TearOff.Tag;
					}
					return _Tag_W;
				}
			}

			public WhereParameter Specifications1
		    {
				get
		        {
					if(_Specifications1_W == null)
	        	    {
						_Specifications1_W = TearOff.Specifications1;
					}
					return _Specifications1_W;
				}
			}

			public WhereParameter Specifications2
		    {
				get
		        {
					if(_Specifications2_W == null)
	        	    {
						_Specifications2_W = TearOff.Specifications2;
					}
					return _Specifications2_W;
				}
			}

			public WhereParameter Specifications3
		    {
				get
		        {
					if(_Specifications3_W == null)
	        	    {
						_Specifications3_W = TearOff.Specifications3;
					}
					return _Specifications3_W;
				}
			}

			public WhereParameter Original
		    {
				get
		        {
					if(_Original_W == null)
	        	    {
						_Original_W = TearOff.Original;
					}
					return _Original_W;
				}
			}

			public WhereParameter BestSeller
		    {
				get
		        {
					if(_BestSeller_W == null)
	        	    {
						_BestSeller_W = TearOff.BestSeller;
					}
					return _BestSeller_W;
				}
			}

			public WhereParameter UserGuide
		    {
				get
		        {
					if(_UserGuide_W == null)
	        	    {
						_UserGuide_W = TearOff.UserGuide;
					}
					return _UserGuide_W;
				}
			}

			public WhereParameter ProductTypeID
		    {
				get
		        {
					if(_ProductTypeID_W == null)
	        	    {
						_ProductTypeID_W = TearOff.ProductTypeID;
					}
					return _ProductTypeID_W;
				}
			}

			public WhereParameter VideoLink
		    {
				get
		        {
					if(_VideoLink_W == null)
	        	    {
						_VideoLink_W = TearOff.VideoLink;
					}
					return _VideoLink_W;
				}
			}

			public WhereParameter SpecificationsSub1
		    {
				get
		        {
					if(_SpecificationsSub1_W == null)
	        	    {
						_SpecificationsSub1_W = TearOff.SpecificationsSub1;
					}
					return _SpecificationsSub1_W;
				}
			}

			public WhereParameter SpecificationsSub2
		    {
				get
		        {
					if(_SpecificationsSub2_W == null)
	        	    {
						_SpecificationsSub2_W = TearOff.SpecificationsSub2;
					}
					return _SpecificationsSub2_W;
				}
			}

			public WhereParameter SpecificationsSub3
		    {
				get
		        {
					if(_SpecificationsSub3_W == null)
	        	    {
						_SpecificationsSub3_W = TearOff.SpecificationsSub3;
					}
					return _SpecificationsSub3_W;
				}
			}

			public WhereParameter MainContentSub1
		    {
				get
		        {
					if(_MainContentSub1_W == null)
	        	    {
						_MainContentSub1_W = TearOff.MainContentSub1;
					}
					return _MainContentSub1_W;
				}
			}

			public WhereParameter MainContentSub2
		    {
				get
		        {
					if(_MainContentSub2_W == null)
	        	    {
						_MainContentSub2_W = TearOff.MainContentSub2;
					}
					return _MainContentSub2_W;
				}
			}

			public WhereParameter MainContentSub3
		    {
				get
		        {
					if(_MainContentSub3_W == null)
	        	    {
						_MainContentSub3_W = TearOff.MainContentSub3;
					}
					return _MainContentSub3_W;
				}
			}

			private WhereParameter _ProductID_W = null;
			private WhereParameter _ProductCode_W = null;
			private WhereParameter _ProductName1_W = null;
			private WhereParameter _ProductName2_W = null;
			private WhereParameter _ProductName3_W = null;
			private WhereParameter _ProductCategoryID_W = null;
			private WhereParameter _TradeMarkID_W = null;
			private WhereParameter _MaterialID_W = null;
			private WhereParameter _ImageDefault_W = null;
			private WhereParameter _Image1_W = null;
			private WhereParameter _Image2_W = null;
			private WhereParameter _Image3_W = null;
			private WhereParameter _Image4_W = null;
			private WhereParameter _MainContent1_W = null;
			private WhereParameter _MainContent2_W = null;
			private WhereParameter _MainContent3_W = null;
			private WhereParameter _Price_W = null;
			private WhereParameter _PriceMarket_W = null;
			private WhereParameter _Colors_W = null;
			private WhereParameter _Priority_W = null;
			private WhereParameter _Size_W = null;
			private WhereParameter _CreatedDate_W = null;
			private WhereParameter _IsSalesOff_W = null;
			private WhereParameter _PriceSaleOff_W = null;
			private WhereParameter _PercentSaleOff_W = null;
			private WhereParameter _SalesOffDescription_W = null;
			private WhereParameter _Status_W = null;
			private WhereParameter _ExpriedDateSaleOff_W = null;
			private WhereParameter _StartedDateSaleOff_W = null;
			private WhereParameter _Tag_W = null;
			private WhereParameter _Specifications1_W = null;
			private WhereParameter _Specifications2_W = null;
			private WhereParameter _Specifications3_W = null;
			private WhereParameter _Original_W = null;
			private WhereParameter _BestSeller_W = null;
			private WhereParameter _UserGuide_W = null;
			private WhereParameter _ProductTypeID_W = null;
			private WhereParameter _VideoLink_W = null;
			private WhereParameter _SpecificationsSub1_W = null;
			private WhereParameter _SpecificationsSub2_W = null;
			private WhereParameter _SpecificationsSub3_W = null;
			private WhereParameter _MainContentSub1_W = null;
			private WhereParameter _MainContentSub2_W = null;
			private WhereParameter _MainContentSub3_W = null;

			public void WhereClauseReset()
			{
				_ProductID_W = null;
				_ProductCode_W = null;
				_ProductName1_W = null;
				_ProductName2_W = null;
				_ProductName3_W = null;
				_ProductCategoryID_W = null;
				_TradeMarkID_W = null;
				_MaterialID_W = null;
				_ImageDefault_W = null;
				_Image1_W = null;
				_Image2_W = null;
				_Image3_W = null;
				_Image4_W = null;
				_MainContent1_W = null;
				_MainContent2_W = null;
				_MainContent3_W = null;
				_Price_W = null;
				_PriceMarket_W = null;
				_Colors_W = null;
				_Priority_W = null;
				_Size_W = null;
				_CreatedDate_W = null;
				_IsSalesOff_W = null;
				_PriceSaleOff_W = null;
				_PercentSaleOff_W = null;
				_SalesOffDescription_W = null;
				_Status_W = null;
				_ExpriedDateSaleOff_W = null;
				_StartedDateSaleOff_W = null;
				_Tag_W = null;
				_Specifications1_W = null;
				_Specifications2_W = null;
				_Specifications3_W = null;
				_Original_W = null;
				_BestSeller_W = null;
				_UserGuide_W = null;
				_ProductTypeID_W = null;
				_VideoLink_W = null;
				_SpecificationsSub1_W = null;
				_SpecificationsSub2_W = null;
				_SpecificationsSub3_W = null;
				_MainContentSub1_W = null;
				_MainContentSub2_W = null;
				_MainContentSub3_W = null;

				this._entity.Query.FlushWhereParameters();

			}
	
			private EasyObject _entity;
			private TearOffWhereParameter _tearOff;
			
		}
	
		public WhereClause Where
		{
			get
			{
				if(_whereClause == null)
				{
					_whereClause = new WhereClause(this);
				}
		
				return _whereClause;
			}
		}
		
		private WhereClause _whereClause = null;	
		#endregion
		
		#region Aggregate Clause
		public class AggregateClause
		{
			public AggregateClause(EasyObject entity)
			{
				this._entity = entity;
			}
			
			public TearOffAggregateParameter TearOff
			{
				get
				{
					if(_tearOff == null)
					{
						_tearOff = new TearOffAggregateParameter(this);
					}

					return _tearOff;
				}
			}

			#region TearOff's
			public class TearOffAggregateParameter
			{
				public TearOffAggregateParameter(AggregateClause clause)
				{
					this._clause = clause;
				}
				
				
				public AggregateParameter ProductID
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductID);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ProductCode
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductCode);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ProductName1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductName1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ProductName2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductName2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ProductName3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductName3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ProductCategoryID
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductCategoryID);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter TradeMarkID
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.TradeMarkID);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MaterialID
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MaterialID);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ImageDefault
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ImageDefault);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Image1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Image1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Image2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Image2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Image3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Image3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Image4
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Image4);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MainContent1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MainContent1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MainContent2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MainContent2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MainContent3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MainContent3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Price
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Price);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter PriceMarket
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.PriceMarket);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Colors
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Colors);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Priority
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Priority);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Size
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Size);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter CreatedDate
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.CreatedDate);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter IsSalesOff
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.IsSalesOff);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter PriceSaleOff
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.PriceSaleOff);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter PercentSaleOff
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.PercentSaleOff);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SalesOffDescription
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.SalesOffDescription);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Status
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Status);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ExpriedDateSaleOff
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ExpriedDateSaleOff);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter StartedDateSaleOff
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.StartedDateSaleOff);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Tag
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Tag);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Specifications1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Specifications1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Specifications2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Specifications2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Specifications3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Specifications3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter Original
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.Original);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter BestSeller
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.BestSeller);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter UserGuide
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.UserGuide);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter ProductTypeID
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.ProductTypeID);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter VideoLink
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.VideoLink);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SpecificationsSub1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.SpecificationsSub1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SpecificationsSub2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.SpecificationsSub2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter SpecificationsSub3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.SpecificationsSub3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MainContentSub1
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MainContentSub1);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MainContentSub2
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MainContentSub2);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}

				public AggregateParameter MainContentSub3
				{
					get
					{
							AggregateParameter ap = new AggregateParameter(ProductsSchema.MainContentSub3);
							this._clause._entity.Query.AddAggregateParameter(ap);
							return ap;
					}
				}


				private AggregateClause _clause;
			}
			#endregion
		
			public AggregateParameter ProductID
		    {
				get
		        {
					if(_ProductID_W == null)
	        	    {
						_ProductID_W = TearOff.ProductID;
					}
					return _ProductID_W;
				}
			}

			public AggregateParameter ProductCode
		    {
				get
		        {
					if(_ProductCode_W == null)
	        	    {
						_ProductCode_W = TearOff.ProductCode;
					}
					return _ProductCode_W;
				}
			}

			public AggregateParameter ProductName1
		    {
				get
		        {
					if(_ProductName1_W == null)
	        	    {
						_ProductName1_W = TearOff.ProductName1;
					}
					return _ProductName1_W;
				}
			}

			public AggregateParameter ProductName2
		    {
				get
		        {
					if(_ProductName2_W == null)
	        	    {
						_ProductName2_W = TearOff.ProductName2;
					}
					return _ProductName2_W;
				}
			}

			public AggregateParameter ProductName3
		    {
				get
		        {
					if(_ProductName3_W == null)
	        	    {
						_ProductName3_W = TearOff.ProductName3;
					}
					return _ProductName3_W;
				}
			}

			public AggregateParameter ProductCategoryID
		    {
				get
		        {
					if(_ProductCategoryID_W == null)
	        	    {
						_ProductCategoryID_W = TearOff.ProductCategoryID;
					}
					return _ProductCategoryID_W;
				}
			}

			public AggregateParameter TradeMarkID
		    {
				get
		        {
					if(_TradeMarkID_W == null)
	        	    {
						_TradeMarkID_W = TearOff.TradeMarkID;
					}
					return _TradeMarkID_W;
				}
			}

			public AggregateParameter MaterialID
		    {
				get
		        {
					if(_MaterialID_W == null)
	        	    {
						_MaterialID_W = TearOff.MaterialID;
					}
					return _MaterialID_W;
				}
			}

			public AggregateParameter ImageDefault
		    {
				get
		        {
					if(_ImageDefault_W == null)
	        	    {
						_ImageDefault_W = TearOff.ImageDefault;
					}
					return _ImageDefault_W;
				}
			}

			public AggregateParameter Image1
		    {
				get
		        {
					if(_Image1_W == null)
	        	    {
						_Image1_W = TearOff.Image1;
					}
					return _Image1_W;
				}
			}

			public AggregateParameter Image2
		    {
				get
		        {
					if(_Image2_W == null)
	        	    {
						_Image2_W = TearOff.Image2;
					}
					return _Image2_W;
				}
			}

			public AggregateParameter Image3
		    {
				get
		        {
					if(_Image3_W == null)
	        	    {
						_Image3_W = TearOff.Image3;
					}
					return _Image3_W;
				}
			}

			public AggregateParameter Image4
		    {
				get
		        {
					if(_Image4_W == null)
	        	    {
						_Image4_W = TearOff.Image4;
					}
					return _Image4_W;
				}
			}

			public AggregateParameter MainContent1
		    {
				get
		        {
					if(_MainContent1_W == null)
	        	    {
						_MainContent1_W = TearOff.MainContent1;
					}
					return _MainContent1_W;
				}
			}

			public AggregateParameter MainContent2
		    {
				get
		        {
					if(_MainContent2_W == null)
	        	    {
						_MainContent2_W = TearOff.MainContent2;
					}
					return _MainContent2_W;
				}
			}

			public AggregateParameter MainContent3
		    {
				get
		        {
					if(_MainContent3_W == null)
	        	    {
						_MainContent3_W = TearOff.MainContent3;
					}
					return _MainContent3_W;
				}
			}

			public AggregateParameter Price
		    {
				get
		        {
					if(_Price_W == null)
	        	    {
						_Price_W = TearOff.Price;
					}
					return _Price_W;
				}
			}

			public AggregateParameter PriceMarket
		    {
				get
		        {
					if(_PriceMarket_W == null)
	        	    {
						_PriceMarket_W = TearOff.PriceMarket;
					}
					return _PriceMarket_W;
				}
			}

			public AggregateParameter Colors
		    {
				get
		        {
					if(_Colors_W == null)
	        	    {
						_Colors_W = TearOff.Colors;
					}
					return _Colors_W;
				}
			}

			public AggregateParameter Priority
		    {
				get
		        {
					if(_Priority_W == null)
	        	    {
						_Priority_W = TearOff.Priority;
					}
					return _Priority_W;
				}
			}

			public AggregateParameter Size
		    {
				get
		        {
					if(_Size_W == null)
	        	    {
						_Size_W = TearOff.Size;
					}
					return _Size_W;
				}
			}

			public AggregateParameter CreatedDate
		    {
				get
		        {
					if(_CreatedDate_W == null)
	        	    {
						_CreatedDate_W = TearOff.CreatedDate;
					}
					return _CreatedDate_W;
				}
			}

			public AggregateParameter IsSalesOff
		    {
				get
		        {
					if(_IsSalesOff_W == null)
	        	    {
						_IsSalesOff_W = TearOff.IsSalesOff;
					}
					return _IsSalesOff_W;
				}
			}

			public AggregateParameter PriceSaleOff
		    {
				get
		        {
					if(_PriceSaleOff_W == null)
	        	    {
						_PriceSaleOff_W = TearOff.PriceSaleOff;
					}
					return _PriceSaleOff_W;
				}
			}

			public AggregateParameter PercentSaleOff
		    {
				get
		        {
					if(_PercentSaleOff_W == null)
	        	    {
						_PercentSaleOff_W = TearOff.PercentSaleOff;
					}
					return _PercentSaleOff_W;
				}
			}

			public AggregateParameter SalesOffDescription
		    {
				get
		        {
					if(_SalesOffDescription_W == null)
	        	    {
						_SalesOffDescription_W = TearOff.SalesOffDescription;
					}
					return _SalesOffDescription_W;
				}
			}

			public AggregateParameter Status
		    {
				get
		        {
					if(_Status_W == null)
	        	    {
						_Status_W = TearOff.Status;
					}
					return _Status_W;
				}
			}

			public AggregateParameter ExpriedDateSaleOff
		    {
				get
		        {
					if(_ExpriedDateSaleOff_W == null)
	        	    {
						_ExpriedDateSaleOff_W = TearOff.ExpriedDateSaleOff;
					}
					return _ExpriedDateSaleOff_W;
				}
			}

			public AggregateParameter StartedDateSaleOff
		    {
				get
		        {
					if(_StartedDateSaleOff_W == null)
	        	    {
						_StartedDateSaleOff_W = TearOff.StartedDateSaleOff;
					}
					return _StartedDateSaleOff_W;
				}
			}

			public AggregateParameter Tag
		    {
				get
		        {
					if(_Tag_W == null)
	        	    {
						_Tag_W = TearOff.Tag;
					}
					return _Tag_W;
				}
			}

			public AggregateParameter Specifications1
		    {
				get
		        {
					if(_Specifications1_W == null)
	        	    {
						_Specifications1_W = TearOff.Specifications1;
					}
					return _Specifications1_W;
				}
			}

			public AggregateParameter Specifications2
		    {
				get
		        {
					if(_Specifications2_W == null)
	        	    {
						_Specifications2_W = TearOff.Specifications2;
					}
					return _Specifications2_W;
				}
			}

			public AggregateParameter Specifications3
		    {
				get
		        {
					if(_Specifications3_W == null)
	        	    {
						_Specifications3_W = TearOff.Specifications3;
					}
					return _Specifications3_W;
				}
			}

			public AggregateParameter Original
		    {
				get
		        {
					if(_Original_W == null)
	        	    {
						_Original_W = TearOff.Original;
					}
					return _Original_W;
				}
			}

			public AggregateParameter BestSeller
		    {
				get
		        {
					if(_BestSeller_W == null)
	        	    {
						_BestSeller_W = TearOff.BestSeller;
					}
					return _BestSeller_W;
				}
			}

			public AggregateParameter UserGuide
		    {
				get
		        {
					if(_UserGuide_W == null)
	        	    {
						_UserGuide_W = TearOff.UserGuide;
					}
					return _UserGuide_W;
				}
			}

			public AggregateParameter ProductTypeID
		    {
				get
		        {
					if(_ProductTypeID_W == null)
	        	    {
						_ProductTypeID_W = TearOff.ProductTypeID;
					}
					return _ProductTypeID_W;
				}
			}

			public AggregateParameter VideoLink
		    {
				get
		        {
					if(_VideoLink_W == null)
	        	    {
						_VideoLink_W = TearOff.VideoLink;
					}
					return _VideoLink_W;
				}
			}

			public AggregateParameter SpecificationsSub1
		    {
				get
		        {
					if(_SpecificationsSub1_W == null)
	        	    {
						_SpecificationsSub1_W = TearOff.SpecificationsSub1;
					}
					return _SpecificationsSub1_W;
				}
			}

			public AggregateParameter SpecificationsSub2
		    {
				get
		        {
					if(_SpecificationsSub2_W == null)
	        	    {
						_SpecificationsSub2_W = TearOff.SpecificationsSub2;
					}
					return _SpecificationsSub2_W;
				}
			}

			public AggregateParameter SpecificationsSub3
		    {
				get
		        {
					if(_SpecificationsSub3_W == null)
	        	    {
						_SpecificationsSub3_W = TearOff.SpecificationsSub3;
					}
					return _SpecificationsSub3_W;
				}
			}

			public AggregateParameter MainContentSub1
		    {
				get
		        {
					if(_MainContentSub1_W == null)
	        	    {
						_MainContentSub1_W = TearOff.MainContentSub1;
					}
					return _MainContentSub1_W;
				}
			}

			public AggregateParameter MainContentSub2
		    {
				get
		        {
					if(_MainContentSub2_W == null)
	        	    {
						_MainContentSub2_W = TearOff.MainContentSub2;
					}
					return _MainContentSub2_W;
				}
			}

			public AggregateParameter MainContentSub3
		    {
				get
		        {
					if(_MainContentSub3_W == null)
	        	    {
						_MainContentSub3_W = TearOff.MainContentSub3;
					}
					return _MainContentSub3_W;
				}
			}

			private AggregateParameter _ProductID_W = null;
			private AggregateParameter _ProductCode_W = null;
			private AggregateParameter _ProductName1_W = null;
			private AggregateParameter _ProductName2_W = null;
			private AggregateParameter _ProductName3_W = null;
			private AggregateParameter _ProductCategoryID_W = null;
			private AggregateParameter _TradeMarkID_W = null;
			private AggregateParameter _MaterialID_W = null;
			private AggregateParameter _ImageDefault_W = null;
			private AggregateParameter _Image1_W = null;
			private AggregateParameter _Image2_W = null;
			private AggregateParameter _Image3_W = null;
			private AggregateParameter _Image4_W = null;
			private AggregateParameter _MainContent1_W = null;
			private AggregateParameter _MainContent2_W = null;
			private AggregateParameter _MainContent3_W = null;
			private AggregateParameter _Price_W = null;
			private AggregateParameter _PriceMarket_W = null;
			private AggregateParameter _Colors_W = null;
			private AggregateParameter _Priority_W = null;
			private AggregateParameter _Size_W = null;
			private AggregateParameter _CreatedDate_W = null;
			private AggregateParameter _IsSalesOff_W = null;
			private AggregateParameter _PriceSaleOff_W = null;
			private AggregateParameter _PercentSaleOff_W = null;
			private AggregateParameter _SalesOffDescription_W = null;
			private AggregateParameter _Status_W = null;
			private AggregateParameter _ExpriedDateSaleOff_W = null;
			private AggregateParameter _StartedDateSaleOff_W = null;
			private AggregateParameter _Tag_W = null;
			private AggregateParameter _Specifications1_W = null;
			private AggregateParameter _Specifications2_W = null;
			private AggregateParameter _Specifications3_W = null;
			private AggregateParameter _Original_W = null;
			private AggregateParameter _BestSeller_W = null;
			private AggregateParameter _UserGuide_W = null;
			private AggregateParameter _ProductTypeID_W = null;
			private AggregateParameter _VideoLink_W = null;
			private AggregateParameter _SpecificationsSub1_W = null;
			private AggregateParameter _SpecificationsSub2_W = null;
			private AggregateParameter _SpecificationsSub3_W = null;
			private AggregateParameter _MainContentSub1_W = null;
			private AggregateParameter _MainContentSub2_W = null;
			private AggregateParameter _MainContentSub3_W = null;

			public void AggregateClauseReset()
			{
				_ProductID_W = null;
				_ProductCode_W = null;
				_ProductName1_W = null;
				_ProductName2_W = null;
				_ProductName3_W = null;
				_ProductCategoryID_W = null;
				_TradeMarkID_W = null;
				_MaterialID_W = null;
				_ImageDefault_W = null;
				_Image1_W = null;
				_Image2_W = null;
				_Image3_W = null;
				_Image4_W = null;
				_MainContent1_W = null;
				_MainContent2_W = null;
				_MainContent3_W = null;
				_Price_W = null;
				_PriceMarket_W = null;
				_Colors_W = null;
				_Priority_W = null;
				_Size_W = null;
				_CreatedDate_W = null;
				_IsSalesOff_W = null;
				_PriceSaleOff_W = null;
				_PercentSaleOff_W = null;
				_SalesOffDescription_W = null;
				_Status_W = null;
				_ExpriedDateSaleOff_W = null;
				_StartedDateSaleOff_W = null;
				_Tag_W = null;
				_Specifications1_W = null;
				_Specifications2_W = null;
				_Specifications3_W = null;
				_Original_W = null;
				_BestSeller_W = null;
				_UserGuide_W = null;
				_ProductTypeID_W = null;
				_VideoLink_W = null;
				_SpecificationsSub1_W = null;
				_SpecificationsSub2_W = null;
				_SpecificationsSub3_W = null;
				_MainContentSub1_W = null;
				_MainContentSub2_W = null;
				_MainContentSub3_W = null;

				this._entity.Query.FlushAggregateParameters();

			}
	
			private EasyObject _entity;
			private TearOffAggregateParameter _tearOff;
			
		}
	
		public AggregateClause Aggregate
		{
			get
			{
				if(_aggregateClause == null)
				{
					_aggregateClause = new AggregateClause(this);
				}
		
				return _aggregateClause;
			}
		}
		
		private AggregateClause _aggregateClause = null;	
		#endregion
	}
}
